<?php

include(dirname(__FILE__).'/../../bootstrap/functional.php');

$browser = new sfTestFunctional(new sfBrowser());

$campagne = CampaignQuery::create()->find();
$campagna = $campagne[0];

$datiFormPartecipazione = array(
  'id_campaign' => $campagna->getId(),
  'email' => 'iorio@miamail.com',
  'nick' => "Iorio",
  'comment' => "Si è aggiunta anche la mia signora."
);

$browser->
  get('/partecipa/index')->

  with('request')->begin()->
    isParameter('module', 'partecipa')->
    isParameter('action', 'index')->
  end()->

  with('response')->begin()->
    isStatusCode(200)->
    //checkElement('body', '!/This is a temporary page/')->
  end()->

  info("### NEW ###")->
  get('/partecipa/new/' . Cuv::slugify($campagna->getName()) . '/' . $campagna->getId())->

  with('request')->begin()->
    isParameter('module', 'partecipa')->
    isParameter('action', 'new')->
  end()->

  with('response')->begin()->
    isStatusCode(200)->
    checkElement('#campagna h1', "DDL Gelmini")->
    checkElement('#campagna p', "Compra un No per affossare il decreto Gelmini")->
    checkElement('#campagne #ddl-gelmini .adesioni', "Hanno già aderito 0 cittadini")->
    checkElement('form #partecipa', true)->
    checkElement('form #partecipa input[type="submit"]', true)->
  end()->
        
  info("1.0 Se effettuo il submit senza aver inserito dati deve andare in callback")->
  click('form input[type="submit"]')->
        
  with('request')->begin()->
    isParameter('module', 'partecipa')->
    isParameter('action', 'create')->
    isParameter('id', $primaPresenzaSocio->getId())->
  end()->

  with('response')->begin()->
    checkElement('form', true)->
    checkElement('form input[type="submit"]', true)->
    checkElement('ul[class="error_list"] li', 1)->
  end()->

  info("2 Se viene inserito del testo e si preme submit deve salvare e tornare al dettaglio")->
  click('form input[type="submit"]', array('campaign_comment' => array("testo" => $commentoPresenzaSocioDaInserire["testo"])))->

  with('response')->begin()->
    isRedirected(1)->
    isStatusCode(302)->
  end()->

  followRedirect()->
  with('request')->begin()->
    isParameter('module', 'presenza_socio')->
    isParameter('action', 'show')->
    isParameter('id', $primaPresenzaSocio->getId())->
  end()->

  with('response')->begin()->
    isStatusCode(200)->
    checkElement('div[id="commenti_presenza"] > div:nth-child(1)', $socioLoggato->getProfile()->__toString())->
    checkElement('div[id="commenti_presenza"] > div:nth-child(2)', $commentoPresenzaSocioDaInserire["testo"])->
  end()->

  info("3 Se non viene trovata la presenza socio associata deve andare in 404")->
  get('/commento_presenza_socio/new/0')->
  with('response')->isStatusCode(404)
;


$browser->setTester('propel', 'sfTesterPropel');
$browser->info('4 - Propel test save')
->with('propel')->begin()->
  check('CommentoPresenzaSocio', $commentoPresenzaSocioDaInserire)->
end();

